package com.swa99ylum.pjv.validator;

import java.util.Arrays;
import java.util.Map;

import com.swa99ylum.pjv.exception.JSONValidateException;

/** <h1>排除 验证器</h1>
<br> 验证 value 不能匹配 任意一个 列表中的 正则表达式
<br> 
<br> 注意：
<br> 由于 继承自 PatternValidator，即 使用 正则表达式 进行匹配，而不是用 String.equals(obj)，
<br> 所以在写  excluded 列表中的 元素时，应当要根据需要 进行转义
 */
public class ExclusionValidator extends PatternValidator {
	
	
	private String[] excluded;
	

	public ExclusionValidator(String[] excluded) {
		super();
		this.excluded = excluded;
	}
	
	@Override
	public void doValidate(Object rootObject, String[] nodePath, String nodeName, Map<String, Object> parentValue, Object value) throws JSONValidateException {
		
		for (String ele : excluded) {
			if(match(ele, String.valueOf(value)))
				throw new JSONValidateException(nodePath, value, "不能是 列表中的值：" + Arrays.toString(excluded)); 
		}
		 
	}

}
